package com.baiqian.doupo.particle;

import net.minecraft.client.particle.IParticleRenderType;
import net.minecraft.client.particle.SpriteTexturedParticle;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.util.math.vector.Vector3d;

import java.awt.*;

//继承SpriteTexturedParticle:能使用一张材质作为粒子效果的显示
public class DouQiParticle extends SpriteTexturedParticle {
    public DouQiParticle(ClientWorld world, double x, double y, double z, Vector3d speed, Color color, float diameter) {
        super(world, x, y, z, speed.x, speed.y, speed.z);
        maxAge = 100;
        /*在这里我们设置的粒子效果的运动速度，在默认情况下TexturedParticle类的构造方法会随机给进行随机人扰动
        在这里我们不希望有这个随机的扰动，所以手动设置的了速度*/
        motionX = speed.x;
        motionY = speed.y;
        motionZ = speed.z;
        //这两行则是设置了颜色和透明度
        setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
        this.setAlphaF(color.getAlpha());
        //这里我们设置了粒子效果的大小。
        final float PARTICLE_SCALE_FOR_ONE_METRE = 0.1F;
        particleScale = PARTICLE_SCALE_FOR_ONE_METRE * diameter;
        //这里我们设置了粒子效果不可以被碰撞
        this.canCollide = false;
    }

    @Override//这里我们设置了粒子效果是以半透明的方式渲染
    public IParticleRenderType getRenderType() {
        return IParticleRenderType.PARTICLE_SHEET_TRANSLUCENT;
    }
}



